﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;

namespace AGPR.Locadora.Utils
{
    /// <summary>
    /// Classe de Criptografia / Hash
    /// </summary>
    public static class Criptografia
    {
        #region md5

        /// <summary>
        /// Retorna um Hash MD5 de uma String
        /// </summary>
        /// <param name="texto">Texto Normal</param>
        /// <returns>Texto no formato Hash</returns>
        public static string md5(string texto)
        {
            MD5 md5 = MD5.Create();
            byte[] inputBytes = Encoding.ASCII.GetBytes(texto);
            byte[] hashBytes = md5.ComputeHash(inputBytes);

            // Converte o Array de Bytes em uma string Hexadecimal
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < hashBytes.Length; ++i)
            {
                sb.Append(hashBytes[i].ToString("x2"));
            }

            return sb.ToString();
        }

        #endregion

        #region random

        /// <summary>
        /// Retorna uma string randomica
        /// </summary>
        /// <returns></returns>
        public static string random()
        {
            string random = System.IO.Path.GetRandomFileName().Replace(".", "");
            string numero = Convert.ToString(new Random().Next(1000));
            
            return random + '_' + numero;
        }

        #endregion
    }
}
